//package com.sweetguy.gen;
//
//import com.mybatisflex.codegen.Generator;
//import com.mybatisflex.codegen.config.GlobalConfig;
//import com.mybatisflex.codegen.dialect.JdbcTypeMapping;
//import com.zaxxer.hikari.HikariDataSource;
//
//import javax.sql.DataSource;
//import java.math.BigDecimal;
//
///** @author JoeZhou */
//public class CMS {
//
//    /** MySQL主机地址 */
//    private static final String MYSQL_HOST = "192.168.112.77:3306";
//    /** 数据库名 */
//    private static final String DB_NAME = "ml_cms";
//    /** 数据库账号 */
//    private static final String MYSQL_USERNAME = "root";
//    /** 数据库密码 */
//    private static final String MYSQL_PASSWORD = "root";
//    /** 作者 */
//    private static final String AUTHOR = "SweetGuy";
//    /** 子模块名: 指定生成到哪个子项目中 */
//    private static final String MODULE_NAME = "ml-course";
//    /** 根包 */
//    private static final String BASE_PACKAGE = "com.sweetguy";
//
//    public static void main(String[] args) {
//        // 将 BigDecimal 类型转为 Double 类型
//        JdbcTypeMapping.registerMapping(BigDecimal.class, Double.class);
//        new Generator(getDataSource(), getGlobalConfig()).generate();
//    }
//
//    /**
//     * 获取MyBatisFlex生成器配置对象
//     *
//     * @return MyBatisFlex生成器配置对象
//     */
//    public static GlobalConfig getGlobalConfig() {
//        GlobalConfig globalConfig = new GlobalConfig();
//        // 设置逻辑删除字段
//        globalConfig.setLogicDeleteColumn("deleted");
//        // 设置乐观锁字段
//        globalConfig.setVersionColumn("version");
//        // 注释配置: 作者
//        globalConfig.getJavadocConfig().setAuthor(AUTHOR);
//        // 包配置: src目录，mapper配置文件目录，根包
//        globalConfig.getPackageConfig()
//                .setSourceDir(MODULE_NAME + "/src/main/java")
//                .setBasePackage(BASE_PACKAGE);
//        // 策略配置: 指定数据库
//        globalConfig.getStrategyConfig().setGenerateSchema(DB_NAME);
//        // 生成实体类，辅助类，Mapper接口，Mapper配置，Service接口，Service实现类和Controller控制器
//        globalConfig.enableEntity().setWithLombok(true).setOverwriteEnable(true);
//        globalConfig.enableTableDef().setOverwriteEnable(true);
//        globalConfig.enableMapper().setOverwriteEnable(true);
//        globalConfig.enableService().setOverwriteEnable(true);
//        globalConfig.enableServiceImpl().setCacheExample(true).setOverwriteEnable(true);
//        globalConfig.enableController().setOverwriteEnable(true);
//
//        // 返回MyBatisFlex生成器配置对象
//        return globalConfig;
//    }
//
//    /***
//     * 获取Hikari数据源对象
//     *
//     * @return Hikari数据源对象
//     */
//    public static DataSource getDataSource() {
//        HikariDataSource dataSource = new HikariDataSource();
//        dataSource.setUsername(MYSQL_USERNAME);
//        dataSource.setPassword(MYSQL_PASSWORD);
//        dataSource.setJdbcUrl("jdbc:mysql://" + MYSQL_HOST + "/" + DB_NAME
//                + "?serverTimezone=Asia/Shanghai"
//                + "&useUnicode=true&characterEncoding=utf-8");
//        return dataSource;
//    }
//}